Systems and methods for providing cloud computing semantic layer operations

ABSTRACT

The disclosed embodiments include a method for providing cloud computing semantic layer. The method comprises receiving a description of a semantic layer operation performed by a semantic layer, the description including multiple implementations of the semantic layer operation, the multiple implementations differing in at least one of cloud operations used or cloud computing platforms used; receiving a request that indicates performance of the semantic layer operation; receiving first resource usage indications corresponding to the cloud operations, wherein the first resource usage indications comprise direct or indirect indications of least one of a storage amount, a compute amount, a number of transactions, a bandwidth, a number of application programming interface calls, or an application or database type associated with each of the cloud operations; selecting a first one of the multiple implementations; and communicating with the first one of the cloud providers to perform the semantic layer operation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 17/119,843,filed Dec. 11, 2020, the entirety of which is hereby incorporated byreference.

BACKGROUND OF THE INVENTION

Cloud computing can enable the sharing of resources to achieve coherenceand economies of scale. Cloud computing platforms can enable computingservices to be delivered on demand to companies or customers over theinternet. In this manner, a user can access these computing serviceswithout having to provide the infrastructure necessary to support them.

Multiple cloud providers offer cloud computing platforms, each offeringa different combination of services and a different interface. Selectingthe appropriate cloud computing platform and the appropriate servicesfor a task may require time and special expertise. Furthermore, cloudproviders may change service offerings or interfaces, so cloud migrationmay require continued engagement, not merely a one-time effort.

SUMMARY

The disclosed systems and methods relate to a semantic layerconfigurated to interface with cloud computing platform(s) and enableperformance of operations without requiring a client to directly engagewith the cloud computing platform(s).

The disclosed embodiments include a system for providing a cloudcomputing semantic layer operation. The system can include at least oneprocessor; and at least one non-transitory computer-readable mediumcontaining instructions that, when executed by the at least oneprocessor, cause the system to perform operations. The operations caninclude: receiving a description of a semantic layer operation performedby a semantic layer, the description including multiple implementationsof the semantic layer operation, the multiple implementations differingin at least one of cloud operations used or cloud computing platformsused; receiving, from a client interacting with the semantic layer, arequest that indicates performance of the semantic layer operation;receiving, from cloud providers associated with each of the cloudcomputing platforms, first resource usage indications corresponding tothe cloud operations, wherein the first resource usage indications caninclude direct or indirect indications of least one of a storage amount,a compute amount, a number of transactions, a bandwidth, a number ofapplication programming interface calls, or an application or databasetype associated with each of the cloud operations; selecting, inresponse to the request, a first one of the multiple implementationsbased on the received first resource usage indications, the first one ofthe multiple implementations using a first one of the cloud computingplatforms; and communicating with the first one of the cloud providersto perform the semantic layer operation in accordance with the requestand using the selected first one of the multiple implementations.

The disclosed embodiments further include a method for providing a cloudcomputing semantic layer operation. The method can include receiving, bya computing system that implements a semantic layer, a description of asemantic layer operation, the description specifying performance of thesemantic layer operation by the semantic layer using a first cloudoperation performed on a first cloud computing platform; receiving, bythe computing system from a cloud provider associated with the firstcloud computing platform, a first resource usage indicationcorresponding to the first cloud operation, wherein the resource usageindication can include a direct or indirect indication of least one of astorage amount, a compute amount, a number of transactions, a bandwidth,a number of application programming interface calls, or an applicationor database type associated with the first cloud operation; receiving,by the computing system from a client interacting with the semanticlayer, a request that indicates performance of the semantic layeroperation; providing, to the client, an estimated resource usageindication based on the request and the received first resource usageindication; receiving, from the client in response to provision of theestimated resource usage indication, confirmation of the request; andcommunicating, by the computing system, with the cloud provider toperform the semantic layer operation in accordance with the request.

The disclosed embodiments further include a non-transitory computerreadable medium containing instructions that, when executed by at leastone processor of a system, cause the system to perform operations. Theoperations can include receiving a description of a semantic layeroperation, the description specifying performance of the semantic layeroperation by a semantic layer using a first cloud operation performed ona first cloud computing platform; receiving, from a cloud providerassociated with the first cloud computing platform, a first resourceusage indication corresponding to the first cloud operation, wherein thefirst resource usage indication includes a direct or indirect indicationof least one of a storage amount, a compute amount, a number oftransactions, a bandwidth, a number of application programming interfacecalls, or an application or database type associated with the firstcloud operation; receiving, from a client interacting with the semanticlayer, a request that indicates performance of the semantic layeroperation; providing, to the client, an estimated resource usageindication based on the request and the received first resource usageindication; receiving, from the client in response to provision of theestimated resource usage indication, confirmation of the request; andcommunicating with the cloud provider to perform the semantic layeroperation in accordance with the request.

The disclosed embodiments include a system for providing a cloudcomputing semantic layer operation. The system includes at least oneprocessor; and at least one non-transitory computer-readable mediumcontaining instructions that, when executed by the at least oneprocessor, cause the system to perform operations. The operationsinclude receiving a description of a semantic layer operation performedby a semantic layer, the description including multiple implementationsof the semantic layer operation, the multiple implementations differingin at least one of cloud operations used or cloud computing platformsused; receiving, from a client interacting with the semantic layer, arequest that indicates performance of the semantic layer operation;receiving, from cloud providers associated with each of the cloudcomputing platforms, first resource usage indications corresponding tothe cloud operations, wherein the first resource usage indicationsinclude direct or indirect indications of least one of a storage amount,a compute amount, a number of transactions, a bandwidth, a number ofapplication programming interface calls, or an application or databasetype associated with each of the cloud operations; selecting, inresponse to the request, a first one of the multiple implementationsbased on the received first resource usage indications, the first one ofthe multiple implementations using a first one of the cloud computingplatforms; and communicating with the first one of the cloud providersto perform the semantic layer operation in accordance with the requestand using the selected first one of the multiple implementations.

The disclosed embodiments further include a method for providing a cloudcomputing semantic layer operation. The method can include receiving, bya computing system that implements a semantic layer, a description of asemantic layer operation performed by the semantic layer, thedescription including multiple implementations of the semantic layeroperation, the multiple implementations differing in at least one ofcloud operations used or cloud computing platforms used; receiving, bythe computing system from a client interacting with the semantic layer,a request that indicates performance of the semantic layer operation;receiving, by the computing system from cloud providers associated witheach of the cloud computing platforms, first resource usage indicationscorresponding to the cloud operations, wherein the first resource usageindications can include direct or indirect indications of least one of astorage amount, a compute amount, a number of transactions, a bandwidth,a number of application programming interface calls, or an applicationor database type associated with each of the cloud operations;selecting, by the computing system in response to the request, a firstone of the multiple implementations based on the received first resourceusage indications, the first one of the multiple implementations using afirst one of the cloud computing platforms; and communicating, by thecomputing system, with the first one of the cloud providers to performthe semantic layer operation in accordance with the request and usingthe selected first one of the multiple implementations.

The disclosed embodiments further include a non-transitory computerreadable medium containing instructions that, when executed by at leastone processor of a system, cause the system to perform operations. Theoperations can include receiving a description of a semantic layeroperation performed by a semantic layer, the description includingmultiple implementations of the semantic layer operation, the multipleimplementations differing in at least one of cloud operations used orcloud-computing platforms used; receiving, from a client interactingwith the semantic layer, a request that indicates performance of thesemantic layer operation; receiving, from cloud providers associatedwith each of the cloud-computing platforms, first resource usageindications corresponding to the cloud operations, wherein the firstresource usage indications include direct or indirect indications ofleast one of a storage amount, a compute amount, a number oftransactions, a bandwidth, a number of application programming interfacecalls, or an application or database type associated with each of thecloud operations; selecting, in response to the request, a first one ofthe multiple implementations based on the received first resource usageindications, the first one of the multiple implementations using a firstone of the cloud computing platforms; and communicating with the firstone of the cloud providers to perform the semantic layer operation inaccordance with the request and using the selected first one of themultiple implementations.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the disclosed embodiments, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings are not necessarily to scale or exhaustive. Instead,emphasis is generally placed upon illustrating the principles of theembodiments described herein. The accompanying drawings, which areincorporated in and constitute a part of this specification, illustrateseveral embodiments consistent with the disclosure and, together withthe description, serve to explain the principles of the disclosure. Inthe drawings:

FIG. 1 depicts a schematic diagram illustrating an environment in whicha semantic layer may operate, consistent with embodiments of the presentdisclosure.

FIG. 2 depicts a flowchart illustrating a first process for providing acloud computing semantic layer operation, consistent with embodiments ofthe present disclosure.

FIG. 3 depicts a flowchart illustrating a second process for providing acloud computing semantic layer operation, consistent with embodiments ofthe present disclosure.

FIG. 4A depicts a schematic diagram illustrating an example of a userinterface, consistent with the embodiments of the present disclosure.

FIG. 4B depicts an exemplary script including a call to a semantic layeroperation, consistent with the embodiments of the present disclosure.

FIG. 4C depicts an exemplary implementation of the semantic layeroperation of FIG. 4B, including calls to cloud operations performed on acloud computing platform, consistent with the embodiments of the presentdisclosure.

FIG. 5 depicts a computing system suitable for implementing a semanticlayer, consistent with embodiments of the present disclosure.

DETAILED DESCRIPTION

Reference will now be made in detail to the present embodiments,examples of which are illustrated in the accompanying drawings. Whereverpossible, the same reference numbers will be used throughout thedrawings to refer to the same or like parts.

The disclosed embodiments concern systems and methods for providingcomputing services through semantic layer that interfaces with cloudcomputing platform(s). By interacting with the semantic layer ratherthan the underlying cloud services platforms, a client can be shieldedfrom the complexity of these platforms and provided a consistentinterface and set of services, even when the interface and servicesexposed by the cloud service platform(s) change. The sematic layer canenable a client to perform operations using cloud computing platformsthat meet the customer's criteria (e.g., reliability, security,execution performance, resource usage, etc.) without requires anunderstanding of the underlying cloud service platform. According tosome embodiments of the present disclosure, the semantic layer can beconfigured to interact with both the cloud computing platform(s) and theclient, enabling the clients to interact indirectly with the cloudcomputing platforms of the cloud providers.

FIG. 1 depicts a schematic diagram illustrating an environment 100 inwhich a semantic layer may operate, consistent with embodiments of thepresent disclosure. Environment 100 may include a semantic layer 110, atleast one cloud computing platform (e.g., local cloud 120 a, remotecloud 120 b, remote cloud 120 c, or the like), a user system 130, and aclient system 140. Consistent with disclosed embodiments, user system130 and local cloud 120 a may be associated with the same entity (e.g.,the same service provider, not shown in FIG. 1 ) while user system 130and remote cloud 120 b and remote cloud 120 c can be hosted by differententities (e.g., these clouds platforms can be associated with one ormore cloud providers, not shown in FIG. 1 ). Components of environment100 may be communicatively connected to each other using a network (notshown).

Semantic layer 110 may be a computing platform configured to enableperformance of semantic layer operations (e.g., as described withregards to FIG. 2 and FIG. 3 ). Semantic layer operations can includeany computing operation performable on a cloud computing platform, orany computing operation that can be decomposed into computing operationsperformable on cloud computing platform(s), without limitation.Consistent with disclosed embodiments, semantic layer 110 can manageperformance of cloud operations on cloud computing platforms (e.g., oneor more of local cloud 120 a, remote cloud 120 b, remote cloud 120 c, orthe like). Semantic layer 110 may be implemented using one or morecomputing devices (e.g., laptop, desktop or workstation, computingcluster, or a cloud computing platform). In some embodiments, semanticlayer 110 can be a least partially hosted on one of the cloud computingplatforms depicted in FIG. 1 (e.g., local cloud 120 a). The one or morecomputing devices can be configured to perform operations consistentwith disclosed embodiments. Consistent with disclosed embodiments,semantic layer 110 can be implemented using hardware, software, and/orfirmware modules. Semantic layer 110 can be configured to include aservice constructor 111 and a service master 112. These components ofsemantic layer 110 can be configured to communicate with each other, orwith external components of semantic layer 110, using a network.

Service constructor 111 can be configured to interact with user system130 to create a semantic layer operation, in accordance with disclosedembodiments. Service constructor 111 can also be configured to obtainresource usage indications from one or more of the cloud computingplatforms, in accordance with disclosed embodiments. In someembodiments, service constructor 111 may provide an interface configuredto manage interactions with user system 130. In some embodiments,service constructor 111 may interact with one or more cloud computingplatforms through an application program interface (API), web servicesframework, or other suitable framework. Service constructor 111 mayrequest information or data from cloud provider 120. Service constructor111 may have application program interfaces that enable serviceconstructor 111 to interact with cloud provider 120, user system 130,other systems, etc. Service constructor 111 may interact with usersystem 130 through a user interface, which enables user system 130 toperform configurations, administration, and performance of cloud serviceprocesses.

Service master 112 may be configured to provide an interface forcommunication with client system 140. The interface can enable a clientto interact with client system 140 to select and configure a semanticlayer operation, in accordance with disclosed embodiments. Servicemaster 112 can be configured to communicate with one or more cloudcomputing platforms to perform the semantic layer operation.

The cloud computing platforms (e.g., local cloud 120 a, remote cloud 120b, and remote cloud 120 c) can be implemented using computing devices,in accordance with disclosed embodiments. The computing devices caninclude cloud servers, computer system resources, e.g., data storage andcomputing devices, software applications, development tools, etc. Thecomputing devices may be general-purpose computing devices, orspecial-purpose computing devices, such as graphical processing units(GPUs) or application-specific integrated circuits. The computingdevices can be configured to host an environment for performingdesignated functions. For example, the computing devices can hostvirtual machines, pods, or containers. The computing devices can beconfigured to run applications for performing designated functions. Thedisclosed embodiments are not limited to any particular implementationof the cloud computing platforms.

A cloud computing platform can be configured to perform cloudoperations, consistent with disclosed embodiments. Such cloud operationscan include receiving data or instructions from sematic layer 110,storing data or instructions in databases, processing data, executingapplications, or any other functions that may be performed by a cloudcomputing platform. In some embodiments, the cloud computing platformmay provide customers with cloud operations as services. As depicted inFIG. 1 , multiple cloud computing platforms can be associated withsemantic layer 110 (e.g., local cloud 120 a, remote cloud 120 b, remotecloud 120 c, or the like).

Consistent with disclosed embodiments, a semantic layer operation can beimplemented in different ways using different cloud operations. Forexample, considering the AMAZON WEB SERVICES cloud platform, data may bestored in AWS S3 or AWS GLACIER. Similarly, different cloud computingplatforms can offer different cloud computing operations. For example,AMAZON WEB SERVICES can offer data warehousing operations usingREDSHIFT, while GOOGLE CLOUD can offer data warehousing operations usingBIGQUERY. AMAZON WEB SERVICES, GOOGLE CLOUD, and MICROSOFT AZURE canalso offer data warehousing operations through SNOWFLAKE. Suchpotentially different implementations of a semantic layer operation aredepicted in FIG. 1 as implementations 121 a to 121 c.

User system 130 can be associated with an operator entity (e.g., anatural or legal person) capable of creating semantic layer operationsin semantic layer 110. Such an operator entity can be the operator(e.g., owner, administrator, or the like) of semantic layer 110 or beauthorized to create semantic layer operations (e.g., a licensee or thelike). A user (e.g., a constituent of the entity, such as an employee orcontractor, not shown in FIG. 1 ) can interact with user system 130 toaccess semantic layer 110 through a user interface provided by semanticlayer 110 or a component thereof (e.g., service constructor 111 oranother component). The user may be authorized to create, manage, oradministrate semantic layer operations that are provided by semanticlayer 110. User system 140 may include a mobile device, a tablet, apersonal computer, a terminal, a kiosk, a server, a server cluster, acloud service, a storage device, a specialized device configured tointeract with semantic layer 110, or the like.

Client system 140 may be associated with a client entity (e.g., anatural or legal person) authorized to access semantic layer 110 toperform semantic layer operations. In some embodiments, the cliententity and the operator entity can be the same entity. For example, afirst employee (e.g., an IT employee or other specialist) can interactwith semantic layer 110 to create semantic layer operations and a secondemployee (e.g., a business analyst, data scientist, or the like) caninteract with semantic layer 110 to perform the semantic layeroperations. In various embodiments, the client entity and the operatorentity can be distinct entities. As a non-limiting example, the operatorentity can create semantic layer operators for use by various cliententities, with may be licensed to use semantic layer 110. A client(e.g., a constituent of the client entity, such as an employee orcontractor, not shown in FIG. 1 ) can interact with client system 140 toaccess semantic layer 110 through a user interface provided by semanticlayer 110 or a component thereof (e.g., service master 12 or anothercomponent). Client system 140 may include a mobile device, a tablet, apersonal computer, a terminal, a kiosk, a server, a server cluster, acloud service, a storage device, a specialized device configured tointeract with semantic layer 110, or the like.

The particular arrangement of components depicted in FIG. 1 is notintended to be limiting. Environment 100 may include additionalcomponents, or fewer components. In addition, semantic layer 110 mayinclude additional components, or fewer components.

FIG. 2 depicts a flowchart illustrating a first process 200 forproviding a cloud computing semantic layer operation, consistent withembodiments of the present disclosure. In some embodiments, firstprocess 200 can be performed by semantic layer 110 of FIG. 1 .

As illustrated in FIG. 2 , at step S210, a description of a semanticlayer operation may be received. Step S210 can be performed by semanticlayer 110 or a component thereof (e.g., service constructor 111, or asimilar component). The description may specify performance of thesemantic layer operation by semantic layer 110 using a cloud operationperformed on a cloud computing platform (e.g., one or more of localcloud 120 a, remote cloud 120 b, remote cloud 120 c, or the like). Insome embodiments, semantic layer 110 may provide a user interfacereceiving the declarative specification. The user interface can enable auser to upload declarative specifications (e.g. in the form of scriptsor programs, or the like). In some embodiments, the user interface canbe a graphical user interface. The user can interact with the graphicaluser interface to provide the description of the semantic layeroperation. In some embodiments, the graphical user interface can enablethe user to select cloud platforms or cloud computing operations. Insome embodiments, the user can interact with the graphical userinterface to create architectures or data processing dependences of thesemantic layer operation.

In some embodiments, the description of the semantic layer operation mayinclude multiple potential implementations. The multiple implementationsmay differ in cloud operation(s) used or cloud computing platform(s)used. As a non-limiting example, the semantic layer operation may bestoring data in a database. Local cloud 120 a may provide twoimplementations corresponding to the semantic layer operation. A firstimplementation may include a first cloud operation creating a firstdatabase and storing designated data in the first database (e.g.,creating and storing data in a SNOWFLAKE database). The firstimplementation may further include additional cloud operations inaddition to the first cloud operation. The additional cloud operationsmay include operations to provide a certain level of security (e.g.,creating and imposing data access conditions on stored data usingCOLLIBRA, or another suitable a data governance product), transfer datafrom client system 140 to the local cloud 120 a, transfer data back toclient system 140, etc. A second implementation supported by local cloud120 a may include a creating a second database and storing thedesignated data in the database (e.g., creating and storing data in aREDSHIFT database, or other data warehouse product). Similar to thefirst implementation, the second implementation may further includeadditional cloud operations. However, these additional cloud operationsmay not provide the same additional features. For example, they may notimpose the same security conditions on access to the data. Or they mayprovide access to the data differently than the first implementation.Similarly, other cloud computing platforms, e.g., remote cloud 120 b or120 c can other implementation(s) corresponding to the semantic layeroperation. In some embodiments, the implementations supported by thedifferent cloud computing platforms can be the same, but the associateddirect or indirect resource usage indications (described herein) candiffer.

In some embodiments, semantic layer 110 or a component thereof (e.g.,service constructor 111, or another component) may be configured toconfigure one or more semantic layer operation options based on thereceived description of the semantic layer operation. In someembodiments, semantic layer 110 may be configured to construct one ormore semantic layer operation options according to instructions or inputreceived from user system 130, e.g, via a user interface. When thedescription of a semantic layer operation includes multipleimplementations, semantic layer 110 can add the descriptions for themultiple implementation to the semantic layer operation. In someembodiments, the first process may further include updating servicemaster 112 to include an entry corresponding to the semantic layeroperation. In some embodiments, the entry may indicate the multipleimplementations for performing the semantic layer operation. In someembodiments, process 200 may further include displaying the entry via auser interface provided by service master 112 to client system 140. Insome embodiments, multiple entries may be displayed to client system140. The multiple entries may include the entry corresponding to thesemantic layer operation and the multiple entries may be associated withdifferent semantic layer operations.

At step S220, resource usage indication(s) can be obtained. Semanticlayer 110 or a component thereof (e.g., service constructor 111, oranother component) can obtain the resource usage indications. Theresource usage indication(s) can correspond to cloud operation(s)performed in implementing the semantic layer operation on a cloudcomputing platform. In some embodiments, when an implementation of afirst cloud computing platform includes a first cloud computingoperation, a corresponding resource usage indication can be receivedfrom a first cloud computing provider associated with the first cloudcomputing platform.

Consistent with disclosed embodiments, the resource usage indication(s)can be obtained by semantic layer 110 or a component thereof (e.g.,service constructor 111, or a similar component). In some embodiments,semantic layer 110 may be configured to request the resource usageindication(s). In some embodiments, semantic layer 110 may request theresource usage indication(s) according to instructions. In someembodiments, such instructions can be provided by a user (e.g., byinteracting with user system 130 to access semantic layer 110 through auser interface). In some embodiments, user 130 can provide a program,script, or the like, which can include instructions to obtain resourceusage indications from the cloud providers corresponding to the cloudplatforms specified in the description.

Semantic layer 110 or a component thereof (e.g., service constructor111, or a similar component) can execute or interpret the instructionsto request resource usage indication(s) from cloud providers. In variousembodiments, such instructions can be generated by service constructor111. For example, service constructor 111 can receive a declarativespecification specifying performance of the first cloud operation on thefirst cloud platform. Based on this received specification, serviceconstructor 111 can request the resource usage indication(s) from cloudprovider(s). In some embodiments, the request(s) can be implemented asAPI calls or web services invocations. In some embodiments, response(s)to the requests can be, include, or indicate the first usage indication.

As used herein, a resource usage indication may include an indication ofat least one of a storage amount, a compute amount, a number oftransactions, a bandwidth, a number of application programming interfacecalls, or an application or database type associated with acorresponding cloud operation. The resource usage indication may bedirect (e.g., indication the amount of resources used) or indirect(e.g., providing a metric, score, value, or the like indicative of theamount of resources used). A storage amount may indicate an expectedstorage amount, e.g., a memory space expected to be used in performanceof the first cloud operation. A compute amount may indicate an expectedcompute amount, e.g., an expected amount of computing power used forperforming the first cloud operation (which can be expressed, forexample, as an amount of time running a machine or virtual machinehaving a certain performance level). A number of transactions mayindicate an expected number of transactions, e.g., an expected number oftransactions with cloud provider 120 during or as part of performance ofthe first cloud operation (e.g., transactions with client system 140 orsemantic layer 110, or another system). A bandwidth may indicate anexpected bandwidth, e.g., a rate of data transfer used in performance ofthe first cloud operation. The number of application programminginterface calls may indicate a reference number of applicationprogramming interface calls, e.g., a number of API calls to acorresponding cloud server made in performance of the first cloudoperation. The application or database type may indicate an exemplaryapplication program or database used in performance of the first cloudoperation. In some embodiments, an indirect resource usage indicationmay include an expected monetary charge for performing the first cloudoperation. In some embodiments, the resource usage indication may dependupon historical data for the first cloud operation (e.g., indications ofactual resource usage attributable to past performance of the firstcloud operation or a similar cloud operation). In various embodiments,the resource usage indication may include an indication of such actualresource usage. In some embodiments, the resource usage indication maydepend upon an indication of current resource usage to perform the firstcloud operation.

In some embodiments, the description can specify multipleimplementations. The multiple implementations can differ in at least oneof cloud operations used or cloud computing platforms used. In suchembodiments, obtaining the resource usage indication(s) can includeobtaining such indications for each of the multiple implementations. Forexample, service constructor 111 can obtain the resource usageindication(s) for each cloud computing operation for a firstimplementation on a first cloud computing platform. Service constructor111 can also obtain the resource usage indication(s) for each cloudcomputing operation for a second implementation on a second cloudcomputing platform. In some embodiments, service constructor 111 maystore received resource usage indication(s) in a local or remote storagedevice, e.g., database in association with corresponding cloudoperation(s), implementation(s), semantic layer operation(s), etc.

At step S230, a request that indicates performance of a semantic layeroperation may be received from client system 140. Step S230 may beperformed by, for example, service master 112, or another component ofsemantic layer 110. In some embodiments, this request may be receivedvia a user interface provided by semantic layer 110 (e.g., by servicemaster 112 of semantic layer 110). In some embodiments, a graphical userinterface provided by service master 112 may display semantic layeroperation available for performance by semantic layer 110. A client mayinteract with client system 140 to select one of the displayed semanticlayer operations. In some embodiments, the graphical user interface maydisplay available implementations for a semantic layer operation. Forexample, in response to selection of a semantic layer operation, thegraphical user interface may display multiple implementations of thatsemantic layer operation. A client may interact with client system 140to select one of the displayed semantic layer operations.

In some embodiments, the request that indicates performance of thesemantic layer operation may further include configuration information.The configuration information may include at least one of securityinformation, performance information, reliability information, or cloudprovider information for performing a desired semantic layer operation.The security information may include data storage compatibilityinformation, security software program or version information, or anyother security measurement information desired for performing thesemantic layer operation. The performance information may include taskamount information, operation completion time information, allocatedcomputing power information, allocated network bandwidth information,etc. The reliability information may include operation performanceguaranteed rate information, operation execution sustainabilityinformation, execution failure-retry number information, etc. The cloudprovider information may include cloud provider identificationinformation, locality information, etc. Consistent with disclosedembodiments, the client can impose conditions on the implementation ofthe semantic layer operation through the provided configurationinformation.

In some embodiments, request may not include configuration information.Consistent with disclosed embodiments, the configuration information maybe received separately from the request from client system 140. In someinstances, semantic layer 110 (e.g, service master 112) can beconfigured to obtain the configuration information through one or moreadditional request/response exchanges with client system 140. In someembodiments, for example, semantic layer 110 may be configured toprovide, in response to receiving the request, at least oneconfiguration option to client system 140. In some embodiments, certainconfiguration options, or combinations of configuration options, can beassociated with certain implementations. For example, a firstconfiguration option may have two values and a second configurationoption can have two values, describing four possible combinations. Threeof those combinations may be compatible with a first implementation,while the fourth combination may be compatible with a secondimplementation. By selecting the configuration options, a client canselect an implementation of the semantic layer operation.

In some embodiments, semantic layer 110 can store configuration optionsfor each implementation (e.g., in a database accessible to semanticlayer 110, or the like). In some embodiments, service constructor 111may receive configuration options for each implementation when receivinga resource usage indication of the implementation. In some embodiments,semantic layer 110 may parse the configuration options from the receivedresource usage indication or information received from a cloud provider(e.g., a cloud provider associated with one of local cloud 120 a, remotecloud 120 b, or remote cloud 120 c). In some embodiments, a client caninteract with client system 140 to provide, in response to receiving theat least one configuration option from service master 112, at least oneselection of the at least one configuration option to service master112. For example, when multiple configuration options are provided,client system 140 can provide a selection of one or more configurationoptions (e.g., configuration options satisfying expectations orrequirements of the client). Service master 112 may receive the at leastone selection of the at least one configuration option from clientsystem 140. In this disclosure, the at least one selection of the atleast one configuration option may be referred to as “configurationinformation” received from client system 140.

At step S240, an estimated resource usage indication may be provided toclient system. Step S240 may be performed by semantic layer 110, or acomponent thereof (e.g., service master 112 or another suitablecomponent). In some embodiments, the estimated resource usage indicationmay be based on the request received at step S230 and the resource usageindications obtained at step S220. Semantic layer 110 may provide anestimated resource usage indication of the first implementationincluding the first cloud operation.

In some embodiments, providing the estimated resource usage indicationat step S240 may include estimating, based on the request at S230, atleast one of a number of times the semantic layer operation will beperformed, an amount of data transferred between semantic layer 110 anda cloud computing platform performing the semantic layer operation forperforming the semantic layer operation, an amount of data stored orduration of data storage by the cloud computing platform in accordancewith the semantic layer operation, or an amount of computation performedby the cloud computing platform in accordance with the semantic layeroperation. The estimated resource usage indication may be determinedbased on the resource usage indication for the correspondingimplementation received from cloud provider 120 at step S220 and therequest at step S230.

Consistent with disclosed embodiments, when configuration information isreceived at step S230, service master 112 may provide an estimatedresource usage indication of an implementation consistent with thisconfiguration information. When no implementations meet theconfiguration information, service master 112 may be configured to senda notification that no options are available for the configurationinformation. In some embodiments, service master 112 may suggest thatclient system provides different configuration information. In someembodiments, the estimated resource usage indication may further bedetermined based on the received configuration information.

In some embodiments, client system 140 may not send the configurationinformation and thus, service master 112 may not receive theconfiguration at step S230. Instead, service master 112 may beconfigured to provide configuration information when providing theestimated resource usage indication at S240. The configurationinformation may be associated with the first implementation associatedwith the estimated resource usage indication. In some embodiments wheremultiple estimated resource usages indications corresponding multipleimplementations for a semantic layer operation are provided,configuration information associated with each of the multipleimplementations may be provided to client system 140.

At step S250, confirmation of the request may be received from clientsystem 140 in response to provision of the estimated resource usageindication. Step S240 may be performed by semantic layer 110, or acomponent thereof (e.g., service master 112 or another suitablecomponent). Client system 140 may send the confirmation of the requestin response to receiving the estimated resource usage indication by stepS240. In some embodiments where service master 112 provide multipleestimated resource usage indications associated with multipleimplementations at step S240, client system 140 may select oneimplementation among the multiple implementations. The confirmation ofthe request may include the selection of one of the multipleimplementations. When client system 140 does not intend to proceed withany implementation, client system 140 may provide non-selectioninformation (e.g., by cancelling a dialog box, selecting a “cancel”control, or the like).

At step S260, service master 112 may communicate with cloud provider 120to perform the semantic layer operation in accordance with the request.Service master 112 may communicate with cloud provider 120 that providesthe implementation confirmed by client system 140 at step S250. Servicemaster 112 may instruct the cloud service platform to perform thesemantic layer operation according to the confirmed implementation. Theimplementation of the semantic layer operation can be described by aspecification, which can be modified or parameterized by theconfiguration information (when present). Service master 112 can beconfigured to interact with the cloud services platform to implement the(optionally modified or parameterized) specification.

As a non-limiting example, a semantic layer operation may include clouddata storage and retrieval. As an initial step, the semantic layer cancommunicate with the selected cloud computing platform according to theselected implementation to create the necessary resources to store andretrieve data (e.g., creating databases and database servers, creatingload balancers to distribute requests to the database servers, etc.).The semantic layer can subsequently receive an original upload requestfrom a client system (e.g., client system 140) to provide data to theselected cloud computing platform. The original upload request caninclude the data. The semantic layer can be configured to generate anupload request in a suitable format (e.g., by translating the originalrequest and/or the data) and provide the generated upload request to theselected cloud computing platform. The resources hosted by cloudcomputing platform can then store the data. Semantic layer 110 can alsoreceive original download requests from other systems. Semantic layer110 can generate suitable download requests based on the originaldownload requests and provide the generated download requests to theselected cloud computing platform. The resources hosted by cloudcomputing platform can then retrieve the requested data and provide itto semantic layer 110. Semantic layer 110 can then format the retrieveddata into a format expected by the requesting system and provide theformatted data to the requesting system. Upon cessation of the clouddata storage and retrieval operation, semantic layer 110 can provideinstructions to tear down the resources hosted by the cloud computingsystem. As would be appreciated by those of skill in the art, theinstructions used to provision/teardown the resources, and the formatsin which data is provided to/retrieved from the selected cloud computingplatform, can depend on the cloud computing platform and the selectedimplementation. Semantic layer 110 can hide this complexity from theclient, enabling them to perform sophisticated cloud computingoperations without needing to understand, or even be aware of, thesedetails.

FIG. 3 depicts a flowchart illustrating a second process 300 forproviding a cloud computing semantic layer, consistent with embodimentsof the present disclosure. In some embodiments, second process 300 canbe performed by semantic layer 110 of FIG. 1 .

As illustrated in FIG. 3 , at step S310, a description of a semanticlayer operation may be received. Step S310 may be performed by semanticlayer 110 or a component thereof (e.g., service constructor 111 or thelike). In some embodiments, semantic layer 110 may receive thedescription from a user interacting with semantic layer 110 through usersystem 130. The description may specify performance of the semanticlayer operation by semantic layer 110. In some embodiments, thedescription of the semantic layer operation may include multipleimplementations performed on cloud computing platforms (e.g., localcloud 120 a, remote cloud 120 b, remote cloud 120 c, or the like)associated with one or more cloud providers. The cloud computingplatforms may provide multiple implementations performed on one or morecloud computing platforms for the corresponding semantic layeroperation. For example, local cloud 120 a may provide one implementationfor the corresponding semantic layer, remote cloud 120 b may provide oneor more implementations, and remote cloud 120 c may not provide anyimplementations. The multiple implementations may differ in at least oneof cloud operations used or cloud computing platforms used.

In some embodiments, second process 300 may further include updatingservice master 112 to include an entry corresponding to the semanticlayer operation. In some embodiments, the entry may indicate themultiple implementations for performing the semantic layer operation.Semantic layer 110 or a component thereof (e.g., service master 112 orthe like) can be configured to provide a graphical user interface.Clients can interact with the graphical user interface to indicateperformance of the semantic layer operation. In some embodiments, thegraphical user interface can display multiple entries corresponding todifferent semantic layer operations that can be performed using semanticlayer 110. In some embodiments, in response to selection of a particularsemantic layer operation, the graphical user interface can displaymultiple entries corresponding to different implementations of thatsemantic layer operation.

At step S320, a request that indicates performance of a semantic layeroperation may be received from client system 140. Semantic layer 110 ora component thereof (e.g., service master 112 or the like) can beconfigured to receive the request. The request may specify the semanticlayer operation that the client interacting with client system 140desires to be performed by semantic layer 110. In some embodiments, therequest can be received through client interactions (e.g., using clientsystem 140, or the like) with the user interface described with regardsto step S310. For example, client system 140 may provide the request byindicating selection of an entry corresponding to the semantic layeroperation among the displayed entries. In some embodiments, as describedherein, client system 140 can provide a specification, script, program,or the like, which can indicate performance of the semantic layeroperation. For example, client system 140 can provide a declarativespecification describing an architecture that expressly or implicitlyrequires performance of the semantic layer operation. As an additionalexample, client system 140 can provide an imperative script thatincludes semantic layer operations as function calls.

In some embodiments, the request may specify a schedule for performingthe semantic layer operation. In some embodiments, the schedule mayinclude a time information, reiteration period information, a start timeinformation, a completion time information, etc. In some embodiments,sematic layer 110 or a component thereof (e.g., service constructor 111,service manager 12, or the like) can provide the schedule to the cloudproviders. The resource usage indications receive from the cloudproviders can depend on this schedule information.

At step S330, resource usage indications corresponding toimplementation(s) of the selected semantic layer operation can beobtained. As described above, a resource usage indication may include anindication of at least one of a storage amount, a compute amount, anumber of transactions, a bandwidth, a number of application programminginterface calls, or an application or database type associated with acorresponding cloud operation. The resource usage indication may bedirect (e.g., indication the amount of resources used) or indirect(e.g., providing a metric, score, value, or the like indicative of theamount of resources used).

Semantic layer 110 or a component thereof (e.g., service constructor111, service manager 12, or the like) can be configured to obtain theresource usage indications. As described herein, differentimplementation of the semantic layer operation can correspond todifferent cloud computing platforms, or differing assortments of cloudcomputing operations on the same cloud computing platform. Accordingly,semantic layer 110 can be configured to obtain the resource usageindications from cloud computing providers associated with these cloudcomputing platforms. As described herein, in some embodiments, semanticlayer 110 can obtain the resource usage indications using API calls toor web services interfaces exposed by the cloud computing platforms.

At step S340, a first implementation among the multiple implementationsmay be selected based on the received first resource usage indications.Step S340 may be performed by semantic layer 110 or a component thereof(e.g., service constructor 111, service manager 12, or the like). Theselection may be performed in response to the request received at stepS320. In some embodiments, the selected first implementation may beperformed using a cloud computing platform (e.g., one of local cloud 120a, remote cloud 120 b, remote cloud 120 c, or the like). In someembodiments, semantic layer 110 may select the first implementation froma certain cloud provider as a default for a certain semantic layeroperation. For example, the entity associated with semantic layer 110can have an agreement with the cloud provider associated with aparticular cloud computing platform to implement certain semantic layeroperations using that platform. In some instances, the client may havethe opportunity to select implementations on other cloud computingplatform, while in other instances that opportunity may not bepresented.

In some embodiments, selecting the first implementation at step S340 mayinclude estimating, based on the request at S320, at least one of anumber of time the semantic layer operation will be performed, an amountof data transferred between semantic layer 110 and a cloud computingplatform performing the semantic layer operation for performing thesemantic layer operation, an amount of data stored or duration of datastorage by the cloud computing platform in accordance with the semanticlayer operation, or an amount of computation performed by the cloudcomputing platform in accordance with the semantic layer operation. Theestimated resource usage indications for performing the requestedsemantic layer operation by the multiple implementations may bedetermined based on the first resource usage indication(s) for thecorresponding implementations received from the cloud computingproviders at step S330 and the request at step S340. In someembodiments, the first implementation may be selected based on theestimated resource usage indications corresponding to the multipleimplementations.

At step S350, semantic layer 110 or a component thereof (e.g., servicemaster 112, or another suitable component) may communicate with theselected cloud computing platform to perform the semantic layeroperation in accordance with the request at step S320 and the selectedimplementation. As described herein, semantic layer 110 may communicatewith the cloud computing platform that provides the selectedimplementation. Service master 112 can provide data and instructions toconfigure the cloud computing platform to provide the selected firstimplementation. Accordingly, semantic layer 110 can perform the semanticlayer operation according to the selected implementation using cloudcomputing operations performed by the cloud computing platform.

At step S360, while the semantic layer operation continues to run,semantic layer 110 or a component thereof can determine whether torecheck the resource usage indications. In various embodiments, theresource usage indication check may be performed repeatedly,periodically, according to a schedule, or in response to an event. Invarious embodiments, such an event could include receipt (e.g., fromclient system 140, or another system) of a request to check resourceusage indications, or receipt (e.g., from a cloud services provider) ofan actual resource usage indication or change in a projected resourceusage indication for the semantic layer operation (or a cloud computingoperation specified by the semantic layer operation). For example,semantic layer 110 may receive a direct or indirect indication that theamount of compute, storage, bandwidth, API calls, or the like used bythe semantic layer operation greatly exceeds the original estimatedresource usage indication.

Consistent with disclosed embodiments, when semantic layer 110determines not to recheck the resource usage indication (the “Y” branchof S360), the semantic layer may then return to step S350 and continueperforming the semantic layer operation according to the currentlyselected implementation.

Consistent with disclosed embodiments, when semantic layer 110determines to recheck the resource usage indication (the “Y” branch ofS360), the semantic layer may then return to step S330 and repeat theprocess of obtaining resource usage indications (e.g., in step S330),selecting an implementation (which may or may not be the same as thecurrent implementation), and communicating with a cloud provider (whichmay or may not be the cloud provider of the cloud service platformcurrently implementing the semantic layer operation) to perform theoperation using the selected implementation.

Upon return to step S330, second resource usage indicationscorresponding to cloud operations may be received. In some embodiments,the second resource usage indications may correspond to the firstresource usage indications but may have changes from the first resourceusage indications. In some embodiments, the second resource usageindications may reflect updates, changes, etc. from the first resourceusage indications. The updates, changes, etc. may have occurred sincethe time the first resource usage indications were constructed. In someembodiments, the second resource usage indications may reflect currentresource usage indications at the time the second resource usageindications are constructed. In some embodiments, service constructor111 may be configured to request corresponding cloud provider 120 tosend the second resource usage indications corresponding to the cloudoperations. In some embodiments, the second resource usage indicationsmay be received in response to the request.

At step S340 in the second round, a second implementation among themultiple implementations may be selected based on the received firstresource usage indications in a first round and the second resourceusage indications. In some embodiments, second process 300 may furtherinclude comparing the first resource usage indications and the secondresource usage indications before selecting the second implementation.In some embodiments, the second implementation selected in the secondround may be same as or different from the first implementation selectedin the first round. The second implementation selected in the secondround may be a different implementation performed using the same cloudcomputing platform associated with the cloud provider that provides thefirst implementation selected in the first round. The secondimplementation selected in the second round may be an implementationperformed using a cloud computing platform associated a cloud providerdifferent from the cloud provider that provides the first implementationselected in the first round. In some embodiments, selecting the secondimplementation may be based on comparison between first estimatedresource usage indications based on the first resource usage indicationsand second estimated resource usage indication based on the secondresource usage indications.

At step S350 in the second round, semantic layer 110 or a componentthereof (e.g., service master 112, or another suitable component) maycommunicate with cloud provider 120 to transfer performance of thesemantic layer operation in accordance with the selection at step S340in the second round. Semantic layer 110 may communicate with the cloudcomputing platform (e.g., remote cloud 120 b) that provides theimplementation selected in the first round to transfer performance ofthe semantic layer operation or with another cloud computing platform(e.g., remote cloud 120 c) that provides the second implementationselected in the second round to continue performance of the semanticlayer operation. Accordingly, the second cloud computing platform (e.g.,remote cloud 120 c) could perform the remainder of the semantic layeroperation in response to the communication. When the originalimplementation selection is maintained at step S350, semantic layer 110may communicate with the cloud computing platform (e.g., remote cloud120 b) to keep performing the semantic layer operation. In someembodiments, such as when data is stored on the first cloud computingplatform, the semantic layer can be configured to route transactionswith client system 140 to the appropriate cloud platform. For example,when data for a first data range is stored on the first cloud computingplatform (e.g., remote cloud 120 b) and data for a second data range isstored on the second cloud computing platform (e.g., remote cloud 120c), semantic layer 110 can serve as a federation layer, enabling queriesto retrieve data from the appropriate cloud computing platform. Semanticlayer 110 can also perform any data processing necessary to combine dataor intermediate results obtained from the two different cloud computingplatforms.

In some embodiments, second process 300 may further include providing anindication of the comparison and the selection at step S350 to clientsystem 140. The comparison may be comparison between the first resourceusage indications and the second resource usage indications. Theselection may be the selection of the second implementation that isdifferent from the first implementation selected in the first round.Second process 300 may further include receiving, in response to theprovided indication, a request to transfer performance of the semanticlayer operation to the second implementation. A client can determinewhether to transfer performance of the semantic layer operation to thesecond implementation based on the provided indication. In response tothe request by client system 140, semantic layer 110 or a componentthereof (e.g., service master 112, or another suitable component) maycommunicate with a cloud computing platform to transfer performance ofthe semantic layer operation. In some embodiments, when client system140 does not provide a request to transfer performance of the semanticlayer operation, the performance may not be transferred. While describedherein as a manual process, in which client determined whether thetransfer the service, transference of performance of the semantic layeroperation can also be performed automatically. For example, sematiclayer 110 can automatically communicate with the first and second cloudplatforms to transfer the service, based on predetermined criteria orcriteria specified by a user or client, or the like. As an additionalexample, client system 140 can automatically provide instructions tosemantic layer 110 to transfer the service, based on predeterminedcriteria or criteria specified by the client, or the like.

When the operation has been completed, second process 300 can terminateas shown in FIG. 3 . When the operation has not been completed, stepsS330 to S360 may be repeated as illustrated with respect to the secondround.

FIG. 4A depicts a schematic diagram illustrating an example of a userinterface, consistent with the embodiments of the present disclosure.FIG. 4A illustrates an example user interface suitable for selecting asemantic layer operation and for providing configuration information. Asdepicted in FIG. 4A, the user interface provided by semantic layer 110may display semantic layer options as a menu of semantic layer operation400. FIG. 4A illustrates, as an example, three semantic layer operationoptions, e.g., execute tasks 410, store files 420, and run applications430. An option, store files 420 is selected and the selection may beindicated on the display (e.g., shaded in FIG. 4A). Once the selectionis made, the interface may display a configuration window 421 thatenables a client to interact with client system 140 to enterconfiguration information. By entering configuration information, theclient can provide configuration information to semantic layer 110.

FIG. 4B depicts an exemplary script including a call to a semantic layeroperation, consistent with the embodiments of the present disclosure.The script defines a function “build_folder” that includes a call to asemantic layer operation, the method “filestore.build_folder( ).” Wheninvoked, executed, or interpreted, the script of FIG. 4B can causesemantic layer 110 to perform the method to create a folder on a cloudcomputing platform. The method takes the name of the folder to createand returns a list of folders. In some embodiments, a client caninteract with client system 140 to provide the script depicted in FIG.4B to semantic layer 110 through a user interface provided by semanticlayer 110. It would be appreciated that FIG. 4B illustrates the method“filestore.build_folder( )” as a non-limiting example of a semanticlayer operation and that the present disclosure may be applied to anysemantic layer operations.

FIG. 4C illustrates an example of an implementation of the semanticlayer operation “filestore.build_folder( )”. Consistent with disclosedembodiments, a user can interact with semantic layer 110 using usersystem 130 to create this implementation. In some embodiments, the usercan directly provide a script specifying the implementation (e.g., theuser can provide the script depicted in FIG. 4C). In variousembodiments, the script can be generated through interactions betweenthe user and semantic layer 110. Consistent with disclosed embodiments,the script of FIG. 4C can cause the sematic layer to implement thesemantic layer operation “filestore.build_folder( )” in FIG. 4B on acloud computing platform. In this non-limiting example, theimplementation can be specific to the AMAZON WEB SERVICES (AWS) cloudplatform and can create an S3 bucket on AWS. As described herein, insome embodiments semantic layer 110 can implement the semantic layeroperation “filestore.build_folder( )” using the implementation depictedin FIG. 4C. Semantic layer 110 can select this implementation based onreceived resource usage indications corresponding to cloud operationsinvolved in this implementation (e.g., the “s3.create_bucket” cloudoperation; resource usage indications, such as indirect resource usageindications, associated with storing data in the created bucket; or thelike) According to the script depicted in FIG. 4C, an S3 bucket with aspecified name (e.g., the name provided in the call of the semanticlayer operation in FIG. 4B) can be created. In some embodiments, aglobally unique name on AWS S3 may be specified for a bucket. When aregion in AWS S3 is specified, a bucket can be created in the specifiedregion. The script further illustrates error handling (e.g., providingan error when the bucket could not be created or the specified regiondoes not match the current session region). In some embodiments, errorsthrown by the implementation can be caught and handled by the semanticlayer without notifying the user. In other embodiments, the user may benotified of such errors. While FIG. 4C illustrate a script to build S3bucket on AWS S3, it will be appreciated that embodiments of the presentdisclosure are not limited to such and semantic layer 110 may beconfigured to build a similar functionality in other cloud platformssuch as GOOGLE CLOUD, MICROSOFT AZURE, etc.

FIG. 5 depicts a computing system 500 suitable for implementing asemantic layer, consistent with embodiments of the present disclosure.Computing system 500 may be a standalone server, or may be a part of asubsystem, which may be part of a larger system. At least somecomponents of computing system 500 may be distributed, and thus areremotely located and communicate over a network. Computing system 500may include any computer, such as a desktop computer, a laptop computer,a tablet, or the like, configured to perform processes (e.g., firstprocess 200 of FIG. 2 , second process 300 of FIG. 3 , etc.) of semanticlayer 110. As depicted in FIG. 5 , computing system 500 may have aprocessor 510, a memory 515, a display 520, an input/output (I/O)interface 525, and a network adaptor 530.

Processor 510 may include or one or more known processing devices suchas, for example, a microprocessor. In some embodiments, processor 510may include any type of single or multi-core processor, mobile devicemicrocontroller, central processing unit, etc. In operation, processor510 may execute computer instructions (program code) and may performfunctions in accordance with techniques described herein. Computerinstructions may include routines, programs, objects, components, datastructures, procedures, modules, and functions, which may performparticular processes described herein. In some embodiments, suchinstructions may be stored in memory 515, in processor 510, orelsewhere. Consistent with the disclosed embodiments, processor 510 mayinclude service constructor 111 or service master 112 shown in FIG. 1 .In some embodiments, service constructor 111 and service master 112 maybe organized or arranged separately from each other. In someembodiments, service constructor 111 and service master 112 may becombined into one module serving the functions of both elements.

Memory 515 may include one or more storage devices configured to storeinstructions used by processor 510 to perform functions related todisclosed embodiments. For example, memory 515 may be configured withone or more software instructions associated with programs and/or data.

Memory 515 may include a single program that performs the functions ofsemantic layer 110, or multiple programs. Additionally, processor 510may execute one or more programs located remotely from processor 510.Memory 515 may also store data that may reflect any type of informationin any format that semantic layer 110 may use to perform operationsconsistent with disclosed embodiments. Memory 515 may be a volatile ornon-volatile (e.g., ROM, RAM, PROM, EPROM, EEPROM, flash memory, etc.),magnetic, semiconductor, tape, optical, removable, non-removable, orother type of storage device or tangible (i.e., non-transitory)computer-readable medium.

Display 520 may be configured to display a user interface through whichuser 130 or client system 140 interact with semantic layer 110. Display520 may be any type of display, e.g., a cathode-ray tube display, aliquid crystal display, or a light-emitting diode display for displayinga content. In some embodiments, display 520 may be configured to displaya user interface through which user 130 may construct, mange, oradminister one or more semantic layer operations. Display 520 mayfurther be configured to display a user interface through which clientsystem 140 may perform semantic layer operation performance relatedactions.

I/O interface 525 may be one or more devices configured to allow data tobe received and/or transmitted by computing system 500. I/O interface525 may include one or more customer I/O devices and/or components, suchas those associated with a keyboard, mouse, touchscreen, display, etc.I/O interface 525 may also include one or more digital and/or analogcommunication devices that allow computing system 500 to communicatewith other machines and devices, such as other components of environment100. I/O interface 525 may also include interface hardware configured toreceive input information and/or display or otherwise provide outputinformation. For example, I/O interface 525 may include a monitorconfigured to display a user interface.

Network adaptor 530 may connect computing system 500 to one or morecomputer networks. This network can be or include a wide area network(e.g., the internet), a local network, a mobile communications network,or the like. The network can be implemented using wired, wireless,cellular, or other communication technologies. The disclosed embodimentsare not limited to any particular type of network or networkimplementation. Computing system 500 may receive data and instructionsover the network using network adaptor 530 and may transmit data andinstructions over the network using network adaptor 530. In someembodiments, network adaptor 530 can include any combination of anynumber of a network interface controller (NIC), a radio frequency (RF)module, a transponder, a transceiver, a modem, a router, a gateway, awired network adapter, a wireless network adapter, a Bluetooth adapter,an infrared adapter, a near-field communication (“NFC”) adapter, acellular network chip, or the like.

Bus 535 can be a communication device that transfers data betweencomponents inside computing system 500, such as an internal bus (e.g., aCPU-memory bus), an external bus (e.g., a universal serial bus port, aperipheral component interconnect express port), or the like.

The disclosed embodiments are not limited to implementation using asingle computing system. For example, semantic layer 110 includingmultiple computing systems similar to computing system 500 (e.g., acluster, or a cloud computing platform) can be configured tointeroperate to perform the disclosed processes.

The foregoing description has been presented for purposes ofillustration. It is not exhaustive and is not limited to precise formsor embodiments disclosed. Modifications and adaptations of theembodiments will be apparent from consideration of the specification andpractice of the disclosed embodiments. For example, the describedimplementations include hardware, but systems and methods consistentwith the present disclosure can be implemented with hardware andsoftware. Furthermore, non-transitory computer-readable media cancontain instructions, that when executed by one or more processor, causea computing system (e.g., a cloud computing platform, computing cluster,or the like) to implement the disclosed systems and methods. Inaddition, while certain components have been described as being coupledto one another, such components may be integrated with one another ordistributed in any suitable fashion.

While illustrative embodiments have been described herein, the scopeincludes any and all embodiments having equivalent elements,modifications, omissions, combinations (e.g., of aspects across variousembodiments), adaptations or alterations based on the presentdisclosure. The elements in the claims are to be interpreted broadlybased on the language employed in the claims and not limited to examplesdescribed in the present specification or during the prosecution of theapplication, which examples are to be construed as nonexclusive.Further, the steps of the disclosed methods can be modified in anymanner, including reordering steps or inserting or deleting steps.

The features and advantages of the disclosure are apparent from thedetailed specification, and thus, it is intended that the appendedclaims cover all systems and methods falling within the true spirit andscope of the disclosure. As used herein, the indefinite articles “a” and“an” mean “one or more.” Similarly, the use of a plural term does notnecessarily denote a plurality unless it is unambiguous in the givencontext. Further, since numerous modifications and variations willreadily occur from studying the present disclosure, it is not desired tolimit the disclosure to the exact construction and operation illustratedand described, and accordingly, all suitable modifications andequivalents may be resorted to, falling within the scope of thedisclosure.

As used herein, unless specifically stated otherwise, the term “or”encompasses all possible combinations, except where infeasible. Forexample, if it is stated that a component may include A or B, then,unless specifically stated otherwise or infeasible, the component mayinclude A, or B, or A and B. As a second example, if it is stated that acomponent may include A, B, or C, then, unless specifically statedotherwise or infeasible, the component may include A, or B, or C, or Aand B, or A and C, or B and C, or A and B and C.

Other embodiments will be apparent from consideration of thespecification and practice of the embodiments disclosed herein. It isintended that the specification and examples be considered as exampleonly, with a true scope and spirit of the disclosed embodiments beingindicated by the following claims.

1-20. (canceled)
 21. A system for providing cloud computing semanticlayer operation, comprising: at least one processor; and at least onenon-transitory computer-readable medium containing instructions that,when executed by the at least one processor, cause the system to performoperations comprising: receiving, from a client interacting with asemantic layer, a request that indicates performance of a semantic layeroperation, wherein the semantic layer is configured to interact withcloud computing platforms that are associated with cloud providers;selecting, in response to the request, a first one of multipleimplementations of the semantic layer operation based on the request andfirst resource usage indications corresponding to cloud operationscorresponding to the multiple implementations, the first one of themultiple implementations using a first one of the cloud computingplatforms, wherein the first resource usage indications comprise director indirect indications of at least one of a storage amount, a computeamount, a number of transactions, a bandwidth, a number of applicationprogramming interface calls, an application type, or a database typeassociated with each of the cloud operations; and communicating with afirst one of the cloud providers to perform the semantic layer operationin accordance with the request and using the selected first one of themultiple implementations.
 22. The system of claim 21, wherein: theoperations further comprise: receiving, from the cloud providers, secondresource usage indications corresponding to the cloud operations;comparing the first resource usage indications and the second resourceusage indications; selecting, based on the comparison, a second one ofthe multiple implementations, the second one of the multipleimplementations using a second one of the cloud computing platforms; andcommunicating with at least one of the first one of the cloud computingplatforms or the second one of the cloud computing platforms, totransfer performance of the semantic layer operation to the selectedsecond one of the multiple implementations.
 23. The system of claim 22,wherein: the operations further comprise: providing an indication of thecomparison and the selection of the second one of the multipleimplementations to the client; and receiving, in response to theprovided indication, a request to transfer performance of the semanticlayer operation to the selected second one of the multipleimplementations; and the performance of the semantic layer operation istransferred in response to the received request to transfer theperformance of the semantic layer operation.
 24. The system of claim 21,wherein: selecting, in response to the request, the first one of themultiple implementations comprises estimating, based on the request, atleast one of: a number of times the semantic layer operation will beperformed; an amount of data transferred between the semantic layer andeach of the cloud computing platforms by performance of the semanticlayer operation; an amount of data stored or duration of data storage byeach of the cloud computing platforms in accordance with the semanticlayer operation; or an amount of computation performed by each of thecloud computing platforms in accordance with the semantic layeroperation.
 25. The system of claim 21, wherein: the first resource usageindications comprise historical or current resource usage indications.26. The system of claim 21, wherein: the operations further comprise:requesting the first resource usage indications based on and in responseto the request.
 27. The system of claim 21, wherein: the operationsfurther comprise: updating a services master to include an entrycorresponding to the semantic layer operation, the entry indicating themultiple implementations and the corresponding first resource usageindications; and displaying entries in the services master to theclient, the displayed entries including the entry corresponding to thesemantic layer operation; and the client interacts with the displayedentries to provide the request.
 28. The system of claim 21, wherein: therequest specifies the semantic layer operation and a schedule forperforming the semantic layer operation.
 29. A method for providingcloud computing semantic layer operation, comprising: receiving, by acomputing system from a client interacting with a semantic layer, arequest that indicates performance of a semantic layer operation,wherein the semantic layer is configured to interact with cloudcomputing platforms that are associated with cloud providers; selecting,by the computing system in response to the request, a first one ofmultiple implementations of the semantic layer operation based on therequest and first resource usage indications corresponding to cloudoperations corresponding to the multiple implementations, the first oneof the multiple implementations using a first one of the cloud computingplatforms, wherein the first resource usage indications comprise director indirect indications of at least one of a storage amount, a computeamount, a number of transactions, a bandwidth, a number of applicationprogramming interface calls, an application type, or a database typeassociated with each of the cloud operations; and communicating, by thecomputing system, with a first one of the cloud providers to perform thesemantic layer operation in accordance with the request and using theselected first one of the multiple implementations.
 30. The method ofclaim 29, further comprising: receiving, by the computing system fromthe cloud providers, second resource usage indications corresponding tothe cloud operations; comparing, by the computing system, the firstresource usage indications and the second resource usage indications;selecting, by the computing system, based on the comparison, a secondone of the multiple implementations, the second one of the multipleimplementations using a second one of the cloud computing platforms; andcommunicating, by the computing system, with at least one of the firstone of the cloud computing platforms or the second one of the cloudcomputing platforms, to transfer performance of the semantic layeroperation to the selected second one of the multiple implementations.31. The method of claim 30, further comprising: providing, by thecomputing system, an indication of the comparison and the selection ofthe second one of the multiple implementations to the client; andreceiving, by the computing system in response to the providedindication, a request to transfer performance of the semantic layeroperation to the selected second one of the multiple implementations;and the performance of the semantic layer operation is transferred inresponse to the received request to transfer the performance of thesemantic layer operation.
 32. The method of claim 29, wherein:selecting, in response to the request, the first one of the multipleimplementations comprises estimating, based on the request, at least oneof: a number of times the semantic layer operation will be performed; anamount of data transferred between the semantic layer and each of thecloud computing platforms by performance of the semantic layeroperation; an amount of data stored or duration of data storage by eachof the cloud computing platforms in accordance with the semantic layeroperation; or an amount of computation performed by each of the cloudcomputing platforms in accordance with the semantic layer operation. 33.The method of claim 29, wherein: the first resource usage indicationscomprise historical or current resource usage indications.
 34. Themethod of claim 29, further comprising: requesting, by the computingsystem, the first resource usage indications based on and in response tothe request.
 35. The method of claim 29, further comprising: updating,by the computing system, a services master to include an entrycorresponding to the semantic layer operation, the entry indicating themultiple implementations and the corresponding first resource usageindications; and displaying, by the computing system, entries in theservices master to the client, the displayed entries including the entrycorresponding to the semantic layer operation; and the client interactswith the displayed entries to provide the request.
 36. The method ofclaim 29, wherein: the request specifies the semantic layer operationand a schedule for performing the semantic layer operation.
 37. Anon-transitory computer readable medium containing instructions that,when executed by at least one processor of a system, cause the system toperform operations comprising: receiving, from a client interacting witha semantic layer, a request that indicates performance of a semanticlayer operation, wherein the semantic layer is configured to interactwith cloud computing platforms that are associated with cloud providers;selecting, in response to the request, a first one of multipleimplementations of the semantic layer operation based on the request andfirst resource usage indications corresponding to cloud operationscorresponding to the multiple implementations, the first one of themultiple implementations using a first one of the cloud computingplatforms, wherein the first resource usage indications comprise director indirect indications of at least one of a storage amount, a computeamount, a number of transactions, a bandwidth, a number of applicationprogramming interface calls, an application type, or a database typeassociated with each of the cloud operations; and communicating with afirst one of the cloud providers to perform the semantic layer operationin accordance with the request and using the selected first one of themultiple implementations.
 38. The computer readable medium of claim 37,wherein: the operations further comprise: receiving, from the cloudproviders, second resource usage indications corresponding to the cloudoperations; comparing the first resource usage indications and thesecond resource usage indications; and selecting, based on thecomparison, a second one of the multiple implementations, the second oneof the multiple implementations using a second one of the cloudcomputing platforms; and communicating with at least one of the firstone of the cloud computing platforms or the second one of the cloudcomputing platforms, to transfer performance of the semantic layeroperation to the selected second one of the multiple implementations.39. The computer readable medium of claim 38, wherein: the operationsfurther comprise: providing an indication of the comparison and theselection of the second one of the multiple implementations to theclient; and receiving, in response to the provided indication, a requestto transfer performance of the semantic layer operation to the selectedsecond one of the multiple implementations; and the performance of thesemantic layer operation is transferred in response to the receivedrequest to transfer the performance of the semantic layer operation. 40.The computer readable medium of claim 37, wherein: selecting, inresponse to the request, the first one of the multiple implementationscomprises estimating, based on the request, at least one of: a number oftimes the semantic layer operation will be performed; an amount of datatransferred between the semantic layer and each of the cloud computingplatforms by performance of the semantic layer operation; an amount ofdata stored or duration of data storage by each of the cloud computingplatforms in accordance with the semantic layer operation; or an amountof computation performed by each of the cloud computing platforms inaccordance with the semantic layer operation.